<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>在排序数组中查找元素的第一个和最后一个位置</title>
  </head>
  <body>
    <script>
      // 给定一个按照升序排列的整数数组 nums，和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
      // 如果数组中不存在目标值 target，返回 [-1, -1]。
      // 进阶：
      // 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗？

      // 示例 1：
      // 输入：nums = [5,7,7,8,8,10], target = 8
      // 输出：[3,4]

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

      var searchRange = function (nums, target) {
        let arr = [];
        let i = nums.indexOf(target);
        if (i === -1) {
          return [-1, -1];
        } else {
          arr.push(i);
          while (nums[i] === target) {
            i++;
          }
          arr.push(i - 1);
          return arr;
        }
      };
      let nums = [5, 7, 7, 8, 8, 10];
      let target = 8;
      console.log(searchRange(nums, target));
    </script>
  </body>
</html>
